Segmentation model user interface

ABSTRACT

A data warehouse may include a data set of items associated with a plurality of attributes. An input handler may be configured to receive selections of attributes and filter options and a placement of an attribute icon representing each selection within a segmentation model displayed within a results portion of a graphical user interface (GUI). A view generator may be configured to provide the segmentation model in the results portion, the model including a data set icon representing the items, provide an attribute list in a segmentation portion of the GUI including a list of the attributes, provide the attribute icon within the segmentation model based on the placement, and provide a flow indicator corresponding to the filter option associated with each attribute icon. A filter may be configured to obtain a subset of the plurality of items corresponding to each selection based on the placement and filter option.

TECHNICAL FIELD

This description relates to data management.

BACKGROUND

An integral part of any successful business includes data management.The data may include anything from product data, service data, employeeinformation, customer databases (including past, current and potentialcustomers), accounting and other kinds of data. As the business grows,the data that needs to be managed may grow as well and may quicklybecome very large. A critical part of the data management process isfiltering the large amount of data to obtain a specific or desiredsubset of data that may be of interest. For example, with a large amountof customer information, a company may desire to locate only a smallersubset of the customers for whom to market a particular product orservice.

Conventional techniques of determining a set of parameters by which tofilter the data to try and locate a subset of current interest has itsown challenges. For example, filtering the data by too many parametersmay yield a subset of data that is too small to be useful and converselyfiltering the data by too few parameters may yield a subset of data thatis larger than desired. Without greater visibility in the filteringprocess, extracting a desired subset of data from a larger set of datamay be quite challenging.

SUMMARY

According to an example embodiment machine executable instructionsstored on a computer-readable medium that, when executed on a dataprocessing apparatus, are configured to cause the data processingapparatus to provide a graphical user interface (GUI) is provided. Asegmentation portion of the GUI is configured to display an attributelist including a plurality of selectable attributes associated with aplurality of items of a data set, wherein each attribute is associatedwith a plurality of selectable filter options. A results portion of theGUI is configured to display a segmentation model, including a data seticon representing the plurality of items of the data set, an attributeicon for each of the plurality of selectable attributes selected by auser from the attribute list, the attribute icon representing a subsetof the plurality of items, associated with the data set icon, filteredbased on the selected attributes from the attribute list, wherein afirst subset from a first attribute icon is filtered to obtain a secondsubset for a second attribute icon subsequent to the first attributeicon in the segmentation model, and flow indicators indicatingrelationships between two or more attribute icons and the data set iconin the segmentation model.

According to another example embodiment a system is provided. A datawarehouse includes a data set wherein the data set includes a pluralityof items, each item associated with a plurality of attributes. An inputhandler is associated with a graphical user interface (GUI) and isconfigured to receive selections of one or more of the attributes andincluding a filter option associated with each selection and a placementof an attribute icon representing each selection within a segmentationmodel displayed within a results portion of the GUI. A view generator isconfigured to provide: the segmentation model in the results portion ofthe GUI, the segmentation model including a data set icon representingthe plurality of items of the data set, an attribute list in asegmentation portion of the GUI, the attribute list including aselectable list of the plurality of attributes, the attribute icon,associated with each selection, within the segmentation model based onthe placement, and a flow indicator corresponding to the filter optionassociated with each attribute icon. A filter is configured to obtain acurrent subset of the plurality of items corresponding to each selectionbased on the placement and filter option, wherein a previous subset ofthe plurality of items of a previous attribute icon within thesegmentation model is filtered to obtain the current subset, and whereinthe filter is configured to filter the current subset to update one ormore subsequent subsets of one or more subsequent attribute icons withinthe segmentation model.

According to another example embodiment a method is provided. Asegmentation model is provided in a results portion of a graphical userinterface (GUI), the segmentation model including at least a data seticon representing a data set of a plurality of items associated with aplurality of attributes. An attribute list is provided in a segmentationportion of the GUI, the attribute list including the plurality ofattributes. One or more attribute selections of one or more attributesare received from the attribute list within the results portion of theGUI. An attribute icon for each attribute selection is provided withinthe segmentation model. A plurality of filter options is providedresponsive to receiving each attribute selection. A filter optionselection is received from the plurality of filter options, the filteroption selection indicating how to filter the items based on theattribute selection. A placement of the attribute icon within thesegmentation model subsequent to the data set icon is received. A flowindicator representing the filter option selection associated with eachattribute icon is provided. The plurality items are filtered to obtain acurrent subset of the items corresponding to the attribute selection andfilter option selection, wherein if the placement of the attribute iconis subsequent to a previous attribute icon associated with a previoussubset, then the filtering to obtain the current subset is performedwith respect to the previous subset, and if the placement of theattribute icon is prior to one or more subsequent attribute iconsassociated with one or more subsequent subsets, then the subsequentsubsets are updated based on the current subset.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example segmentation system thatincludes a segmentation engine, graphical user interface (GUI) and datawarehouse, according to an example embodiment.

FIG. 2 is a flowchart illustrating example operations of the system ofFIG. 1, according to an example embodiment.

FIG. 3 is a flowchart illustrating example operations of the system ofFIG. 1, according to an example embodiment.

FIG. 4 is an example block diagram of a segmentation model, according toan example embodiment.

FIG. 5 is an example block diagram of a graphical user interface (GUI),according to an example embodiment.

FIG. 6 is an example block diagram of a segmentation model, according toan example embodiment.

FIG. 7 is an example block diagram of at least a portion of asegmentation model, according to an example embodiment.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of an example segmentation system 100 thatincludes a segmentation engine 102, graphical user interface (GUI) 104and data warehouse 106, according to an example embodiment. In theexample of FIG. 1, the system 100 provides a visual display forfiltering or segmenting data. For example, the segmentation engine 102may provide graphical icons representing at least a portion of the datafrom the data warehouse 106 to the GUI 104. Then for example, a user 108may select icons, drag-and-drop, modify or otherwise adjust otherportions of the GUI 104 to filter the data. The system 100 allows theuser 108 to visually filter through data, seeing intermediate results ofthe filtering, adjusting the filtering based on the intermediate resultsto obtain a target set or subset of the data. For example, the user 108may filter, using the system 100, though a large amount of customer datato obtain a subset of customers of interest to the user 108, which maythen be targeted for a specific marketing campaign.

The data warehouse 106 may include any storage medium for data,including for example, memory, a database, and/or spreadsheets. The datawarehouse may include a data set 110. The data set 110 may include anycombination of related or unrelated data. For example, the data set 110may include a customer database for a company, where information aboutcurrent, past and/or potential customers may be stored. In other exampleembodiments, the data set 110 may include accounting, product, service,employee or other information. The data set 110 may include one or moreitems 112. The items 112 may correspond to individual rows, records orother pieces of data of the data set 110. For example, if the data set110 includes customer information, then each item 112 may correspond toan individual customer within the data set 110.

Each item 112 may include or otherwise be associated with multipleattributes 114A-C. The attributes 114A-C may include characteristics orparameters related to each item 112. For example, if each item 112corresponds to a customer, then example attributes 114A-C may includefirst name, last name, address, credit information, purchase history,hobbies, age and/or other information associated with a customer.According to an example embodiment, different items 112 may beassociated with different attributes 114A-C, whereby not each item 112of the data set 110 may include the same attributes 114A-C of everyother item 112. In other example embodiments, the data set 110 mayinclude items not necessarily related to each other, and may include,for example, customer information, account information and employeeinformation as items 112.

A view generator 116 of the segmentation engine 102 may provide the GUI104 including a visual representation of the filtering or segmentationof the data set 110. The GUI 104 may include a segmentation portion 118Aand a results portion 118B. The portions 118A-B of the GUI 104 maycorrespond to windows, panels or other portions of the GUI 104. Forexample, the GUI 104 may include a main results panel 118B and anassociated segmentation window or menu bar 118A.

The segmentation portion 118A may include an attribute list 120. Theattribute list 120 may include a list of one or more of the attributes114A-C from the data set 110. For example the attribute list 120 mayinclude, as selectable text or icons within the attribute list 120, theattributes 114A, 114B and 114C. Then for example, this may allow theuser 108 to select one or more attributes 114A-C from the attribute list120 by which to filter the items 112 of the data set 110.

As referenced above, the items 112 of the data set 110 may be associatedwith multiple attributes 114A-C, at least a portion of which may appearin the attribute list 120. The user 108 may then, for example, selectattributes 114A-C from the attribute list 120 by which to filter theitems 112 of the data set 110. For example, if the attributes 114A-Cinclude city, state, zip code, hobbies and marital status, the user 108may select any of these attributes 114A-C from the attribute list 120 tofilter the items 110. For example, the user 108 may filter the data set110 to include only those items 112 that include a marital status of‘single’ and city of ‘New York’. Or, for example, the data set 110 maybe filtered into two different groups, those that include ‘soccer’ as ahobby, and those that do not.

The view generator 116 may provide a data set icon 122 in the resultsportion 118B of the GUI 104. The data set icon 122 may include an iconor other visual and/or textual representation of at least a portion ofthe items 112 of the data set 110 before any user 108 applied filtering.For example, as discussed below, the data set icon 122 may include arepresentation of a pre-filtered portion of the items 112 of the dataset 110 based on user permissions (e.g., 146). Or for example, the dataset icon 122 may include or represent the entire set of items 112 of thedata set 110.

The user 108 may then select one or more attributes 114A-C from theattribute list 120 by which to filter the items 112 represented by thedata set icon 122. For example, the user 108 may drag the attribute 114Cfrom the attribute list 120 and place it within the results portion 118Bof the GUI 104. Then for example, an input handler 124 may receive theselection 126 of one or more of the attributes 114A-C of the attributelist 120.

The input handler 124 may receive selections 126 made by the user 108via the GUI 104. For example, as just discussed, the input handler 124may receive a selection 126 of the attribute 114C from the attributelist 120. The selection 126 may include any selection made by the user108 via the GUI 104. For example, the selection 126 may includeselections of attributes 114A-C from the attribute list 120 and/or, asdiscussed below, filter options 130.

The input handler 124 may then provide the selection 126 to a filter128. The filter 128 may filter the items 112 of the data set 110 by theattributes 114A-C received via the selection 126. The filter 128, forexample, may access the data set 110 and search, include and/or excludeitems 112 that match or do not match the selected attributes 114A-C, asdetermined by the user 108.

Each selected attribute 114A-C from the attribute list 120 may beassociated with a filter option 130. The filter options 130 may includemultiple options on how the user 108 desires the data set 110 to befiltered using the selected attribute(s) 114A-C. For example, the filteroptions 130 may include: filtering the data set 110 for only those items112 that include the selected attribute(s) 114A-C, filtering the dataset 110 for only those items 112 that exclude the selected attribute(s)114A-C, splitting the data set 110 into a first group that includes theselected attribute(s) 114A-C and a second group that excludes theselected attribute(s) 114A-C, or rejoining two or more previously splitgroups of items 110 from the data set 110. In other example embodiments,additional and/or different filter options 130 may be provided and/orselected.

The filter 128 may then filter the data set 110 based on the selectedattribute(s) 114A-C and associated filter option 130 to obtain a subset132 of the data set 110 that corresponds to the selections 126. Thesubset 132 may include zero or more of the items of the data set 110that correspond to filtering selections 126 made by the user 108. In anexample embodiment, the filter 128 may obtain two or more subsets 132based on the same selected attribute 114A-C and filter option 130.

The subset 132 may be represented within the results portion 118B of theGUI 104 by an attribute icon 134A, 134B. The attribute icons 134A-B mayrepresent the subset 132 of the items 112 as determined by the filter128 based upon one or more selections 126 made by the user 108. Forexample, if the user 108 drags the attribute 114A from the attributelist 120 into the results portion 118B of the GUI 104, the attributeicon 134A may be provided by the view generator 116 to represent thesubset 132 of the data set 110 that corresponds to the selectedattribute 114 and associated filter option 130 as may be selected from afilter search box 136. This may allow the user 108 to determine, forexample, by quickly looking at the results portion 118B how the data set110 has been segmented and determine additional filters or othermodifications to apply to the segmentation.

The filter search box 136 may include a pop-up window, box, menu orother portion of the GUI 104 that appears when one or more attributes114A-C have been selected from the attribute list 120. The filter searchbox 136 may appear until the user 108 selects a filter option 130 forthe selected attribute(s) 114A-C from the attribute list 120. Then theselected attribute(s) 114A-C and filter option 130 may be received bythe input handler 124 as the selection 126, as discussed above.

The selected filter option 130 corresponding to each attribute icon134A-B may be represented in the results portion 118B of the GUI 104 byone or more flow indicators 137. The flow indicator 137 may indicatewhich filter option 130 was selected and corresponds to the associatedattribute icons 134A-B. For example, the flow indicator for an includefilter option may appear different than a split, Venn or other filteroption.

As shown in the results portion 118B, the attribute icon 134B may beplaced by the user 108, in the results portion 118B, subsequent to theattribute icon 134A. In this example, the user 108 may further filterthe subset 132 of the items 112 represented by the attribute icon 134Aby the selections (e.g., 126) corresponding to the attribute icon 134B.Then for example, the filter 128 would filter the subset 132 associatedwith the attribute icon 134A to obtain the subset 132 associated withthe selections 126 corresponding to the attribute icon 134B, rather thanfiltering the entire data set 110. This may allow the user 108 toiteratively refine the data set 110 until a target group subset of theitems 112 is obtained. Such a waterfall approach to filtering and visualdisplay may allow the segmentation engine 102 to build on previouslyperformed filters that have taken place, rather than filtering theentire data set 110 from scratch with each modification.

A target group icon 138 may represent a targeted subset of items 112after one or more segmentations of the data set 110 based on theselected attributes 114A-C. Upon a determination that a target groupsubset has been reached, the system 100 may provide the user 108 withthe items 112 and associated attributes 114A-C within the target groupsubset (from the data set 110). Then for example, the user 108 may usethis information to develop mailing lists, reporting or for otherpurposes.

The icons (e.g., data set icon 122, attribute icons 134A-B and/or targetgroup icon 138) may be associated with a count 140. The count 140 mayinclude an indication of which and/or how many items 112 are included ineach subset 132 represented by the icons. For example, the count 140 mayinclude the number of items 112 of each subset, or may include a portionof the subset 112. Other example embodiments may not include a count140. The count 140 may be determined by a counter 142. The counter 142may analyze the subset 132 obtained by the filter 128 to determine thecount 140. The counter 142 may, for example, count the number of items112 included in the subset and return this number as the count 140associated with the icons in the results portion 118B.

An access manager 144 may determine to which of the items 112 and/orattributes 114A-C of the data set 110 the user 108 has access, based onpermissions 146. The permissions 146 may be include values of certain ofthe attributes 114A-C pre-defined for the user 108. For example, theuser 108 may include a salesperson whose responsibility includes onlyclients who are located in the United States. Then for example, thepermissions 146 of the user 108 may limit the user 108 to searching onlythose items 112 that include the attribute 114A where country=‘UnitedStates’. According to an example embodiment, only those clients whoseattribute 114A=‘United States’ may be represented by the data icon 122,even though the data set 110 may include items 112 with the attribute114A including countries around the world. Similarly, the permissions146 may restrict and/or grant the user 108 from using one or more of theattributes 114A-C. For example, a manager (e.g., user 108) may begranted broader permissions 146 than an employee who reports to themanager.

An indexer 148 may index the items 112 of the data set 110. Indexing theitems 112 may include arranging at least a portion of the data set 110to improve the speed, accuracy and/or other performance of searches,segmentation or filtering of the data. An example indexing of the datamay include placing each item 112 into a row, and each attribute 114A-Cas columns corresponding to the rows.

According to an example embodiment, the indexer 148 may update theindexed data set (e.g., 110) on a delta basis. For example, if only oneor a couple of the items 112 and/or attributes 114A-C change, then theindexer 148 may update the already indexed data set to reflect thechanges, rather than rebuilding the entire indexed data set again fromthe beginning Being able to update the indexed data set may increase orimprove performance of the system of FIG. 1, by reducing the time neededto reflect any updates or modifications to the underlying set of items112 and/or attributes 114A-C.

The results portion 118B of the GUI 104 may include a segmentation model150. The segmentation model 150 may include the icons and flowindicators 137 appearing in the results portion 118B of the GUI 104 asmay be selected by the user 108. The segmentation model 150 may allowthe user 108 to, step-by-step, filter or segment the data set 110, viewthe intermediate results of the segmentation and adjust the filteringaccordingly. For example, by viewing the segmentation model 150, theuser 108 may determine whether a particular applied filter (e.g.,attribute 114A-C and filter option 130) is too restrictive or too broador perhaps yields an undesired result.

The user 108 may drag, for example, the attribute icon 134B and place itprior to the attribute icon 134A in the segmentation model 150 and havethe segmentation engine 102 readjust for the new filtration order. Or inanother example embodiment, the user 108 may drag a new attribute 114Cand place it in between the attribute icons 134A and 134B. Any number ofvarious visual manipulations may be performed by the user 108 to thesegmentation model 150, which may then be reflected by the segmentationengine 102. One skilled in the art may appreciate that any number ofattributes 114A-C, data sets 110 and icons may be a part of the system100, and that the elements shown are for exemplary purposes only.

FIG. 2 is a flowchart 200 illustrating example operations of the system100 of FIG. 1, according to an example embodiment. More specifically,FIG. 2 illustrates an operational flow 200 representing exampleoperations related to a segmentation engine 102.

After a start operation, a segmentation model may be provided in aresults portion of a graphical user interface (GUI), the segmentationmodel including at least a data set icon representing a data set of aplurality of items associated with a plurality of attributes (210). Forexample, as shown in FIG. 1, view generator 116 may provide thesegmentation model 150 in the results portion 118B of the GUI 104. Thesegmentation model 150 may include the data set icon 122 representingthe items 112 associated with the attributes 114A-C of the data set 110.

An attribute list may be provided in a segmentation portion of the GUI,the attribute list including the plurality of attributes (220). Forexample, the attribute list 120 may be provided by the view generator116 in the segmentation portion 118A of the GUI 104, the attribute list120 including the attributes 114A-C.

One or more attribute selections of one or more attributes may bereceived from the attribute list within the results portion of the GUI(230). For example, the input handler 124 may receive attributes 114A-Cfrom the attribute list 120 placed within the results portion 118 of theGUI 104.

An attribute icon for each attribute selection may be provided withinthe segmentation model (240). For example, the attribute icons 134A and134B, corresponding to the selections 126, may be provided within thesegmentation model 150 by the view generator 116.

A plurality of filter options may be provided responsive to receivingeach attribute selection (250). For example, the filter options 130 maybe provided by the view generator 116 in the filter search box 136responsive to receiving an attribute selection from the attribute list120.

A filter option selection may be received from the plurality of filteroptions, the filter option selection indicating how to filter the itemsbased on the attribute selection (260). For example, the input handler124 may receive a filter option selection (e.g., 126) from the filteroptions 130 displayed in the filter search box 136.

A placement of the attribute icon within the segmentation modelsubsequent to the data set icon may be received (270). For example, theview generator 116 may implement a placement of the attribute icon 134Awithin the segmentation model 150 (as provided or otherwise determinedby the user 108), subsequent to the data set icon 122. The subsequentplacement of the attribute icon 134A, by the view generator 116, afterthe data set icon 122 within the segmentation model 150 may include aplacement anywhere within the segmentation model 150 such that the datamodel reflects that the attribute icon 134A represents at least a subsetof the data set icon 122. According to an example embodiment wherein thesegmentation model 150 reflects a top-down or waterfall approach, theattribute icon 134A may appear anywhere below and/or parallel to thedata set icon 122. In other example embodiments however a subsequentplacement of the attribute icon 134A within the segmentation model 150by the view generator 116 may allow for other placements within theresults portion 118B.

A flow indicator representing the filter option selection associatedwith each attribute icon may be provided (280). For example, the viewgenerator 116 may provide the flow indicator 137 associated with theattribute icon 134A. According to an example embodiment, the flowindicator 137 may correspond to which filter option 130 was selected.

The plurality of items may be filtered to obtain a current subset of theitems corresponding to the attribute selection and filter optionselection, wherein if the placement of the attribute icon is subsequentto a previous attribute icon associated with a previous subset, then thefiltering to obtain the current subset is performed with respect to theprevious subset (290). For example, the filter 128 may filter the items112 to obtain the subset 132 corresponding to the attribute selectionand filter option selections (e.g., selection 126). Then for example, ifthe attribute icon 134B is placed subsequent to the previous attributeicon 134A associated with a previous subset (e.g., 132), then the filter128 may filter the previous subset to obtain the current subset 132represented by the attribute icon 134B.

The plurality of items may be filtered to obtain a current subset of theitems corresponding to the attribute selection and filter optionselection, wherein if the placement of the attribute icon is prior toone or more subsequent attribute icons associated with one or moresubsequent subsets, then the subsequent subsets are updated based on thecurrent subset (292). For example, the filter 128 may filter the items112 to obtain the subset 132 corresponding to the attribute selectionand filter option selections (e.g., selection 126). Then for example, ifthe attribute icon 134A is place prior to the attribute icon 134B, thenthe filter 128 may update the subset (e.g., 132) represented by theattribute icon 134B based on the subset (e.g., 132) represented by theattribute icon 134A.

FIG. 3 is a flowchart 300 illustrating example operations of the system100 of FIG. 1, according to an example embodiment. More specifically,FIG. 3 illustrates an operational flow 300 representing exampleoperations related to the segmentation engine 102 of FIG. 1.

After a start operation, selections of one or more attributes andincluding a filter option associated with each selection and a placementof an attribute icon representing each selection within a segmentationmodel displayed within a results portion of the GUI may be received(310). For example, as shown in FIG. 1, the input handler 124 mayreceive the selection 126 of one or more of the attributes 114A-C of theattribute list 120 and including a filter option 130 and a placement ofthe attribute icon 134A within the results portion 118B of the GUI 104.

The segmentation model may be provided in the results portion of theGUI, the segmentation model including a data set icon representing theplurality of items of the data set (320). For example, the viewgenerator 116 may provide the segmentation model 150 in the resultsportion 118B of the GUI 104, the segmentation model 150 including thedata set icon 122 representing the items 112 of the data set 110.

An attribute list may be provided in a segmentation portion of the GUI,the attribute list including a selectable list of the plurality ofattributes (330). For example, the view generator 116 may provide theattribute list 120 in the segmentation portion 118A of the GUI 104, theattribute list 120 include the list of attributes 114A-C.

The attribute icon, associated with each selection, may be providedwithin the segmentation model based on the placement (340). For example,the view generator 116 may provide the attribute icon 134A, associatedwith the selection 126, within the segmentation model 150 based on aplacement within the results portion 118B.

A flow indicator corresponding to the filter option associated with eachattribute icon may be provided (350). For example, the view generator116 may provide the flow indicator 137 corresponding to the filteroption 130 associated with the attribute icon 134A.

A current subset of the plurality of items corresponding to eachselection based on the placement and filter option may be obtained,wherein a previous subset of the plurality of items of a previousattribute icon within the segmentation model may be filtered to obtainthe current subset (360). For example, the filter 128 may obtain thecurrent subset 132 of the items 112 corresponding to the selection 126based on the placement of the attribute icon 134A within thesegmentation model 150 and filter option 130. Then for example, toobtain the subset 126 represented by the attribute icon 134B, theprevious subset represented by the attribute icon 134A may be filtered.

The current subset may be filtered to update one or more subsequentsubsets of one or more subsequent attribute icons within thesegmentation model (370). For example, the filter 128 may filter thesubset represented by the attribute icon 134A to update the subsequentsubset represented by the attribute icon 134B within the segmentationmodel 150.

FIG. 4 is an example block diagram of a segmentation model 150,according to an example embodiment. The segmentation model 150 includesa data set icon 122. The data set icon 122 is associated with a count142 that describes the set of data represented by the icon (e.g., “AllCustomers”) and the number of items located within the set (e.g.,“10000069”).

The segmentation model 150 also includes three different types ofattribute icons 134A, 134B and 134C. The attribute icon 134A may includea filter node wherein a portion of the items from the data set 122 maybe filtered from the previous group. The attribute icon 134B may includea profile node wherein a portion of the items of the data set 122 may befiltered from the previous group and the results (e.g., which items areincluded within the group) may be retrieved or stored. The attributeicon 134C may include a Venn node representing a Venn operation beingperformed on two or more subsets, including a merge, remove or intersectoperation.

The target icons 138 may represent target groups obtained from the dataset 142, as a result of applying the previous filters or segmentationswithin the segmentation model 150. The filter search box 136 includessome exemplary filter options 130 that be may be performed with respectto the target group 138 “(Musicals OR T . . . ”. The exemplaryselectable filter options 130 may include reducing the target group,splitting the target group, rejoining target groups, deduplicating atarget group, deleting, and going to properties. Deduplicating a targetgroup may be used to modify the result of a filter combination, forexample to remove or otherwise discount duplicated nodes resulting fromthe combination. According to an example embodiment, deduplicating maybe applied to the entire segmentation model 150 rather than specificallyto a single target icon 138. Other filter options 130 may also existwithin the filter search box 136 that may not be applicable for theselected target icon 138, including, for example, activating,deactivating and completing modeling.

In the example of FIG. 4, the set of all customers may be filtered fromover 10 million records to 451,171 based on the application of a firstfilter ‘Allowed, Person’. The subset of ‘Allowed, Person’ records maythen be split into records that include books and records that includemusicals or theatre. The profile of the musicals or theatre subset maybe retrieved (e.g., as indicated by the 134B profile node) and a targetset 138 determined.

The books subset may then be filtered into the subset of excellentbooks, which may include the same number of records as the book subsetas indicated by the counts 100,101. The excellent books subset may thesplit into those records with 51-80 books and those records with 21-50books, whereby these subsets may be rejoined as indicated by the Vennnode 134C, a profile determined and a target set 138 identified.

FIG. 5 is an example block diagram of a graphical user interface (GUI)104, according to an example embodiment. The GUI 104 may include theresults portion 118B including the segmentation model 150 (e.g., thesegmentation model of FIG. 4) and the segmentation portion 118A. Thesegmentation portion 118A may include the attribute list 120 with theattributes 114 that are subdivided into categories, including creditranking, currency and most recent purchase. The credit ranking attributelist 120 may include the attributes 114: Excellent, Good, Mediocre, Poorand Unknown; the currency attribute list 120 may be minimized and thusnone of the credit ranking attributes 114 may be currently visiblewithout first expanding the list; and the most recent purchase attributelist 120 may include the attributes 114 in 2008 and in 2007.

The segmentation portion 118A may also include an attribute search box502, a segments box 504 and a favorites box 506. The attribute searchbox 502 may be used to search the attribute list 120 for one or moreattributes 114. For example, in an embodiment with a large number ofattributes 114, not all of which may be displayed simultaneously, theattribute search box 502 may be utilized to find one or more specificattributes 114.

The segments box 504 may be used to search for one or more predefinedsegments from the current or previous segmentation models 150. Forexample, a segment may include a combination of one or more filterapplications (e.g., attributes 114 and filter options) used to obtain aspecific result or subset of data. The segments may be pre-defined oruser-defined.

The favorites box 506 may include favorite or more often used filters bya user (e.g., 108). The favorites box 506 may be used to make generatingthe segmentation model 150 more user-friendly, whereby a user may havequick access to those filters used most often.

FIG. 6 is an example block diagram of a segmentation model 150,according to an example embodiment. The segmentation model 150 mayinclude a count 140 in the form of a pie chart, showing the breakdown orrelevance of items in a data set. A count selection box 602 may be usedto select various options associated with the pie chart count 140. Forexample, the options associated with the count 140 (e.g., pie chart) mayinclude: converting between a pie chart or bar chart, including numbersnext to pie segments or next to the list, create a standard pie chart ora pie chart with a border, rotate the pie chart, placing the legend tothe left, right, below or above, displaying figures, showingdescriptions, save options, and drag-and-drop filter options. In otherexample embodiments, the count selection box 602 may include differentoptions for various kinds of counts 140

FIG. 7 is an example block diagram of at least a portion of asegmentation model 150, according to an example embodiment. Thesegmentation model 150 may include the data set icon 122 that isfiltered to obtain those items with a hobby equal to tennis or golf asrepresented by the attribute icon 134A. The subset represented by 134Amay then be split into three separate subsets 134B, C, and D,corresponding to those items with attributes equivalent to product A, B,and C, respectively.

Then for example, the subset represented by 134D may be split into thoseitems with a female gender 134E and those without. The items without thefemale gender may then be merged (e.g., via a Venn operation) to includethose items that do not include product A, resulting in the 134F subset.Then, the 134F subset may be merged with the 134E subset to yield orobtain the subset 134G that includes a merging between those items thatinclude attributes gender male, product C and not product A and thoseitems that include attributes gender female and product C.

Although the above description is provided in terms of specificexamples, it will be appreciated that many other examples and settingsare contemplated. For example, the term business document should beinterpreted broadly as including any document that is used in profitgeneration of some sort, although the business document 104 also mayrefer to documents for non-profit endeavors as well, including, forexample, schools, churches, charities, hospitals, or virtually any otherorganization. Further, the business document 104 is merely an example,and other applications, such as applications for personal use, also maybe used.

Implementations of the various techniques described herein may beimplemented in digital electronic circuitry, or in computer hardware,firmware, software, or in combinations of them. Implementations may beimplemented as a computer program product, i.e., a computer programtangibly embodied in an information carrier, e.g., in a machine-readablestorage device or in a propagated signal, for execution by, or tocontrol the operation of, data processing apparatus, e.g., aprogrammable processor, a computer, or multiple computers. A computerprogram, such as the computer program(s) described above, can be writtenin any form of programming language, including compiled or interpretedlanguages, and can be deployed in any form, including as a stand-aloneprogram or as a module, component, subroutine, or other unit suitablefor use in a computing environment. A computer program can be deployedto be executed on one computer or on multiple computers at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

Method steps may be performed by one or more programmable processorsexecuting a computer program to perform functions by operating on dataand generating output. Method steps also may be performed by, and anapparatus may be implemented as, special purpose logic circuitry, e.g.,an FPGA (field programmable gate array) or an ASIC (application-specificintegrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. Elements of a computer may include atleast one processor for executing instructions and one or more memorydevices for storing instructions and data. Generally, a computer alsomay include, or be operatively coupled to receive data from or transferdata to, or both, one or more mass storage devices for storing data,e.g., magnetic, magneto-optical disks, or optical disks. Informationcarriers suitable for embodying computer program instructions and datainclude all forms of non-volatile memory, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor andthe memory may be supplemented by, or incorporated in special purposelogic circuitry.

To provide for interaction with a user, implementations may beimplemented on a computer having a display device, e.g., a cathode raytube (CRT) or liquid crystal display (LCD) monitor, for displayinginformation to the user and a keyboard and a pointing device, e.g., amouse or a trackball, by which the user can provide input to thecomputer. Other kinds of devices can be used to provide for interactionwith a user as well; for example, feedback provided to the user can beany form of sensory feedback, e.g., visual feedback, auditory feedback,or tactile feedback; and input from the user can be received in anyform, including acoustic, speech, or tactile input.

Implementations may be implemented in a computing system that includes aback-end component, e.g., as a data server, or that includes amiddleware component, e.g., an application server, or that includes afront-end component, e.g., a client computer having a graphical userinterface or a Web browser through which a user can interact with animplementation, or any combination of such back-end, middleware, orfront-end components. Components may be interconnected by any form ormedium of digital data communication, e.g., a communication network.Examples of communication networks include a local area network (LAN)and a wide area network (WAN), e.g., the Internet.

While certain features of the described implementations have beenillustrated as described herein, many modifications, substitutions,changes and equivalents will now occur to those skilled in the art. Itis, therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the embodiments.

1. Machine executable instructions stored on a computer-readable mediumthat, when executed on a data processing apparatus, are configured tocause the data processing apparatus to provide a graphical userinterface (GUI) comprising: a segmentation portion configured todisplay: an attribute list including a plurality of selectableattributes associated with a plurality of items of a data set, whereineach attribute is associated with a plurality of selectable filteroptions; and a results portion configured to display a segmentationmodel including: a data set icon representing the plurality of items ofthe data set, an attribute icon for each of the plurality of selectableattributes selected by a user from the attribute list, the attributeicon representing a subset of the plurality of items, associated withthe data set icon, filtered based on the selected attributes from theattribute list, wherein a first subset from a first attribute icon isfiltered to obtain a second subset for a second attribute iconsubsequent to the first attribute icon in the segmentation model, andflow indicators indicating relationships between two or more attributeicons and the data set icon in the segmentation model.
 2. The machineexecutable instructions configured to provide the GUI of claim 1 whereinthe results portion is configured to display the attribute icon for eachof the plurality of selectable attributes that are dragged from theattribute list and dropped into the results portion onto thesegmentation model.
 3. The machine executable instructions configured toprovide the GUI of claim 1 wherein the results portion is configured todisplay the segmentation model including the data set icon representinga subset of the plurality of items of the data set filtered based onpermissions associated with the user.
 4. The machine executableinstructions configured to provide the GUI of claim 1 wherein theresults portion is configured to display the segmentation modelincluding the flow indicators corresponding to a filter option selectedfor each selected attribute.
 5. The machine executable instructionsconfigured to provide the GUI of claim 1 wherein the results portion isconfigured to display the segmentation model including a countassociated with each attribute icon, the count representing a size ofthe subset of the plurality of items corresponding to the selectedattribute.
 6. The machine executable instructions configured to providethe GUI of claim 1 wherein the results portion is configured to displaythe segmentation model including a target group icon representing asubset of the plurality of items filtered based on each of the selectedattributes, the target group icon appearing subsequent to each of theattribute icons within the segmentation model.
 7. The machine executableinstructions configured to provide the GUI of claim 1 wherein theresults portion is configured to display updates associated with one ormore of the attribute icons based on a changed placement of one or moreattribute icons within the results portion.
 8. A system comprising: adata warehouse including a data set wherein the data set includes aplurality of items, each item associated with a plurality of attributes;an input handler associated with a graphical user interface (GUI) andconfigured to receive selections of one or more of the attributes andincluding a filter option associated with each selection and a placementof an attribute icon representing each selection within a segmentationmodel displayed within a results portion of the GUI; a view generatorconfigured to: provide the segmentation model in the results portion ofthe GUI, the segmentation model including a data set icon representingthe plurality of items of the data set, provide an attribute list in asegmentation portion of the GUI, the attribute list including aselectable list of the plurality of attributes, provide the attributeicon, associated with each selection, within the segmentation modelbased on the placement, and provide a flow indicator corresponding tothe filter option associated with each attribute icon; and a filterconfigured to obtain a current subset of the plurality of itemscorresponding to each selection based on the placement and filteroption, wherein a previous subset of the plurality of items of aprevious attribute icon within the segmentation model is filtered toobtain the current subset, and wherein the filter is configured tofilter the current subset to update one or more subsequent subsets ofone or more subsequent attribute icons within the segmentation model. 9.The system of claim 8 wherein: the input handler is configured toreceive a first selection of a first attribute; and the view generatoris configured to provide, responsive to the first selection, a filtersearch box including a plurality of filter options, wherein the inputhandler receives a selection of a first filter option from the pluralityof filter options.
 10. The system of claim 8 wherein the input handleris configured to receive the selections from the attribute list.
 11. Thesystem of claim 8 further comprising: an indexer configured to index theplurality of items of the data set; and the filter being configured tofilter the indexed data do obtain the current subset.
 12. The system ofclaim 8 further comprising a counter configured to count the pluralityof items included in the current subset.
 13. The system of claim 8further comprising an access manager configured to determine permissionsassociated with a user of the system.
 14. The system of claim 13 whereinthe filter is configured to filter the plurality of items of the dataset represented by the data set icon based on the permissions.
 15. Thesystem of claim 13 wherein the filter is configured to filter theplurality of attributes from the attribute list based on thepermissions.
 16. The system of claim 13 wherein: the filter isconfigured to filter the plurality of items of the data set based on theselections of the one or more attributes to obtain a target group; andthe view generator is configured to provide a target group icon in theresults portion representing the target group.
 17. A method comprising:providing a segmentation model in a results portion of a graphical userinterface (GUI), the segmentation model including at least a data seticon representing a data set of a plurality of items associated with aplurality of attributes; providing an attribute list in a segmentationportion of the GUI, the attribute list including the plurality ofattributes; receiving one or more attribute selections of one or moreattributes from the attribute list within the results portion of theGUI; providing, within the segmentation model, an attribute icon foreach attribute selection; providing, responsive to receiving eachattribute selection, a plurality of filter options; receiving a filteroption selection from the plurality of filter options, the filter optionselection indicating how to filter the items based on the attributeselection; receiving a placement of the attribute icon within thesegmentation model subsequent to the data set icon; providing a flowindicator representing the filter option selection associated with eachattribute icon; and filtering the plurality items to obtain a currentsubset of the items corresponding to the attribute selection and filteroption selection, wherein if the placement of the attribute icon issubsequent to a previous attribute icon associated with a previoussubset, then the filtering to obtain the current subset is performedwith respect to the previous subset, and if the placement of theattribute icon is prior to one or more subsequent attribute iconsassociated with one or more subsequent subsets, then the subsequentsubsets are updated based on the current subset.
 18. The method of claim17 wherein the filtering comprises generating a target group including asubset of the plurality of items corresponding to a plurality ofattribute selections and associated filter option selections.
 19. Themethod of claim 17 wherein the filtering comprises generating multipletarget groups resulting from the segmentation model, each target groupincluding a subset of the plurality of items corresponding to one ormore attribute selections and filter option selections.
 20. The methodof claim 17 wherein the filtering comprises re-combining two or moresubsets that were previously split by one or more filter options withinthe segmentation model.